//
//  NSDate+Extension.swift
//  YANAWeibo
//
//  Created by mac on 16/5/17.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

extension NSDate {
    class func sinaDate(createAt: String) -> NSDate {
        let dateFormatter = NSDateFormatter()
        // 指定本地化信息
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        // 格式化时间
        dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        let createAtDate = dateFormatter.dateFromString(createAt)!
        return createAtDate
        
        
    }
    
    var sinaDateString: String? {
        let dateFormatter = NSDateFormatter()
        // 指定本地化信息
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        
        if isThisYear(self) {
            // 是今年
            let calender = NSCalendar.currentCalendar()
            // 判断是否是今天
            if calender.isDateInToday(self) {
                //是今天
                let timeInterval = abs(self.timeIntervalSinceNow)
                if timeInterval < 60 {
                    return "刚刚"
                } else if timeInterval < 3600 {
                    let result = timeInterval / 60
                    return "\(Int(result))分钟前"
                } else {
                    let result = timeInterval / 3600
                    return "\(Int(result))小时前"
                }
                
            } else if calender.isDateInYesterday(self) {
                //是昨天
                dateFormatter.dateFormat = "昨天 HH:mm"
            } else {
                //其他
                dateFormatter.dateFormat = "MM-dd HH:mm"
            }
            
            
        } else {
            // 不是今年
            dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
        }
        return dateFormatter.stringFromDate(self)
    }
    
    
    
    /**
    判断发微博时间是否是今年
    
    - parameter createAtDate: 发微博时间
    
    - returns: 是否是今年
    */
    private func isThisYear(createAtDate: NSDate) -> Bool {
        //获取当前时间
        let currentDate = NSDate()
        let dateFormatter = NSDateFormatter()
        // 指定本地化信息
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        dateFormatter.dateFormat = "yyyy"
        
        // 获取当前时间的年份
        let currentDateYear = dateFormatter.stringFromDate(currentDate)
        // 获取发微博时间的年份
        let createDateYear = dateFormatter.stringFromDate(createAtDate)
        
        return currentDateYear == createDateYear
    }
}
